package com.puzzlebazar.client.squaregrid.view;

import com.puzzlebazar.client.util.Vec2i;

public interface CellHighlighter {
	
	/**
	 * Highlight a specific cell of the square grid
	 * 
	 * @param loc Location of the cell
	 * @throws Exception
	 */
	public void highlightCell( Vec2i loc ) throws Exception;
	
	/**
	 * Highlight a specific rectangle of cells in the square grid
	 * 
	 * @param loc1 Location of one corner of the rectangle
	 * @param loc2 Location of the diagonally opposed corner
	 * @throws Exception
	 */
	public void highlightCells( Vec2i loc1, Vec2i loc2 ) throws Exception;
	

	/**
	 * Remove the highlight of a specific cell of the square grid
	 * 
	 * @param loc Location of the cell
	 * @throws Exception
	 */
	public void unhighlightCell(Vec2i loc) throws Exception;
	
	/**
	 * Remove the highlight a specific rectangle of cells in the square grid
	 * 
	 * @param loc1 Location of one corner of the rectangle
	 * @param loc2 Location of the diagonally opposed corner
	 * @throws Exception
	 */
	public void unhighlightCells( Vec2i loc1, Vec2i loc2 ) throws Exception;

	/**
	 * Unhighlight all the cells
	 */
	public void unhighlightAllCells();
	

}
